The present invention relates to controlling a reordering buffer by a user equipment (UE) that employs a next-expected transmission sequence number (TSN) and a receiver window for a HSDPA (High-Speed Downlink Packet Access) system in a UMTS (Universal Mobile Telecommunications System), which is a European type IMT-2000 system, and more particularly, to controlling the reordering buffer to prevent stall conditions due to MAC-hs PDUs not being delivered to the upper layer when the next-expected TSN falls outside the receiver window range.
The UMTS (Universal Mobile Telecommunications System) is a third generation mobile communications system that evolved from the European GSM (Global System for Mobile Communications) system, with the purpose of providing further improved mobile communications service based upon a GSM core network and W-CDMA (Wideband Code Division Multiple Access) technology.
FIG. 1 depicts a typical UMTS network (100) architecture. The UMTS broadly consists of user equipment (UE 110), a UMTS Terrestrial Radio Access Network (UTRAN 120), and a core network (CN 130). The UTRAN consists of one or more radio network sub-systems (RNS 121, 122), and each RNS consists of one radio network controller (RNC 123, 124) and one or more base stations (Node Bs 125, 126) that are managed by the RNC. The Node B, being managed by the RNC, receives data sent from a physical layer of the UE via the uplink and transmits data to the UE via the downlink, to thus act as an access point of the UTRAN with respect to the UE. The RNC handles the allocation and management of radio resources, and acts as an access point with the CN.
An RNC that manages dedicated radio resources for a particular UE is called a serving RNC (SRNC 123), and an RNC that manages common radio resources for a plurality of UEs within one cell is called a controlling RNC (CRNC). Also, when the UE moves, all RNCs that the UE goes through (excluding the SRNC) are called drift RNCs (DRNCs 124). The drift RNCs 124 facilitate the routing of user data and allocate codes as common resources.
The interface between the RNC and the CN is called an lu interface. The interface between the SRNC and the DRNC is called an lur interface. The interface between the RNC and Node B is called an lub interface. Each interface provides control data or data transmission services via a transport bearer. For example, the bearer provided in the lub interface is called a lub transport bearer, which provides control data or data transmission services between the RNC and Node B.
FIG. 2 depicts a radio interface protocol architecture based upon a 3GPP radio access network specification between the UE and the UTRAN. The radio interface protocol of FIG. 2 is divided horizontally into a physical layer, a data link layer, and a network layer, and is divided vertically into a user plane for data information transmissions and a control plane for transfer of control signaling. Namely, the user plane is the region in which traffic information of the user (such as voice, IP (Internet Protocol) packets, and the like) is transferred, while the control plane is the region in which control information (such as the interface of the network, maintaining and managing calls, and the like) is transferred. The protocol layers of FIG. 2 may be divided into a first layer (L1), a second layer (L2), and a third layer (L3) based upon the lower three layers of an open system interconnection (OSI) model that is a well-known in communications systems.
Each layer depicted in FIG. 2 will now be described in more detail. The first layer (L1) is a physical layer (PHY) that provides information transfer service to upper layers by using various radio transmission techniques, and is connected to a medium access control (MAC) layer that is located thereabove via a transport channel through which data travels between the MAC layer and the physical layer.
The MAC layer provides data transfer, reallocation of radio resources and MAC parameters. The MAC layer is connected to a radio link control (RLC) layer, which is an upper layer, via a logical channel, and various logical channels are provided depending upon the type of data that is transmitted.
In general, when information of the control plane is transmitted, a control channel is used. When information of the user plane is transmitted, a traffic channel is used.
The MAC layer is sub-divided into a MAC-b sub-layer, a MAC-d sub-layer (310), a MAC-c/sh sub-layer (320), and a MAC-hs sub-layer (330), according to the type of transport channel that is managed.
The MAC-b sub-layer manages a BCH (Broadcast Channel), which is a transport channel handling the broadcasting of system information.
The MAC-d sub-layer (310) manages a dedicated channel (DCH), which is a dedicated transport channel for a specific terminal. Accordingly, the MAC-d sub-layer of the UTRAN is located in a serving radio network controller (SRNC) that manages a corresponding terminal, and one MAC-d sub-layer also exists within each UE.
The MAC-c/sh sub-layer (320) manages a common transport channel, such as a forward access channel (FACH) or a downlink shared channel (DSCH), which is shared by a plurality of terminals. In the UTRAN, the MAC-c/sh sub-layer exists for each cell and is located in a controlling radio network controller (CRNC), and one MAC-c/sh sub-layer exists in each UE.
The MAC-hs sub-layer (330) performs the functions related to HSDPA (High-Speed Data Packet Access) such as packet scheduling, HARQ (Hybrid ARQ) operations, and the like.
The RLC layer supports reliable data transmissions, and performs a segmentation and concatenation function on a plurality of RLC service data units (RLC SDUs) delivered from an upper layer. When the RLC layer receives the RLC SDUs from the upper layer, the RLC layer adjusts the size of each RLC SDU in an appropriate manner upon considering processing capacity, and then creates certain data units with header information added thereto. The created data units are called protocol data units (PDUs), which are then transferred to the MAC layer via a logical channel. The RLC layer includes a RLC buffer for storing the RLC SDUs and/or the RLC PDUs.
The BMC (Broadcast/Multicast Control) layer is located above the RLC layer, and schedules cell broadcast messages (referred to as ‘CB messages’, hereinafter) received from the core network, and broadcasts the CB messages to UEs located in a specific cell(s).
The PDCP (Packet Data Convergence Protocol) layer is located above the RLC layer, and allows the data transmitted through a network protocol (such as an IPv4 or IPv6) to be effectively transmitted on a radio interface with a relatively small bandwidth. To achieve this, the PDCP layer performs the function of reducing unnecessary control information used for a wire-line network, and this type of function is called, header compression.
There is a radio resource control (RRC) layer at a lowermost portion of the L3 layer. The RRC layer is defined only in the control plane, and handles the controlling of logical channels, transport channels, and physical channels with respect to establishment, reconfiguration, and release of radio bearers (RBs). The radio bearer service refers to a service that the second layer (L2) provides for data transmission between the terminal and the UTRAN in order to guarantee a predetermined quality of service by the UE and UTRAN. And in general, the radio bearer (RB) establishment refers to regulating the protocol layers and the channel characteristics of the channels required for providing a specific service, as well as respectively setting substantial parameters and operation methods.
When the RRC layer of a particular UE and that of the UTRAN are connected to allow RRC messages to be sent and received therebetween, that UE is said to be in RRC connected state. If there is no such connection, that UE is said to be in idle state.
The HSDPA system is based on WCDMA, supports a maximum speed of 10 Mbps, and provides shorter delay times and improved capacity compared to existing systems.
FIG. 3A shows a radio interface protocol structure for supporting a HSDPA system. A terminal (UE) and a network (UTRAN) respectively contain corresponding protocol layers. For example, the MAC layer is divided into a MAC-d sub-layer, a MAC c/sh sub-layer, and a MAC-hs sub-layer. At the network, the MAC-hs sub-layer can be positioned above the physical layer (PHY) of a Node B (base station). The MAC-c/sh and the MAC-d sub-layers are located in the CRNC and the SRNC, respectively. A new transmission protocol called the HS-DSCH frame protocol (FP) is used between the RNC and the Node B, or among the RNCs for the delivery of HSDPA data.
FIG. 3B also shows a more detailed terminal side MAC architecture for supporting the HSDPA system. As shown, the MAC layer is divided into a MAC-d sub-layer (310), a MAC-c/sh sub-layer (320), and a MAC-hs sub-layer (330).
The manner in which the MAC layer receives the data from the physical layer and delivers it to the RLC layer will now be described. The data block (MAC-hs PDU) delivered to the MAC-hs sub-layer (330) through the HS-DSCH (High-Speed Downlink Shared Channel) is first stored in one of the HARQ processes within the HARQ block (331). In which process the data block is stored can be known from the HARQ process identifier included in the downlink control signal.
The HARQ process, in which the data block is stored, transmits the NACK (Negative Acknowledgement) to the UTRAN when there are errors in the data block and requests the re-transmission of the data block. When no errors exist, the HARQ process delivers the data block to a reordering buffer (shown in FIG. 4) and transmits the ACK (Acknowledgement) to the UTRAN. The reordering queue distribution block (333) and the reordering blocks (334, 335) are employed to handle the data blocks delivered to the reordering buffer.
Multiple reordering buffers can exist per priority level. The HARQ process delivers the data block to the corresponding reordering buffer by using the Queue ID (identity) included in the data block. A significant characteristic of the reordering buffer is that it supports in-sequence delivery of data.
Data blocks are sequentially delivered to an upper layer based on a transmission sequence number (TSN). More specifically, when a data block is received while one or more previous data blocks are missing, the data block is stored in the reordering buffer and is not delivered to the upper layer. Rather, the stored data block is delivered to the upper layer only when all previous data blocks are received and delivered to the upper layer. The TSN is 6 bits in length and modulo operations are performed.
Typically, because several HARQ processes operate, a reordering buffer may receive data blocks out of sequence. Therefore, a reordering buffer must be employed so that the data blocks can be delivered to the upper layer in sequence.
When the data blocks (MAC-hs PDUs) are delivered to the upper layer, they are sent to a disassembly block (336, 337). This disassembly block disassembles the MAC-hs PDU (formed by a plurality of MAC-d PDUs combined together) and thus performs segmentation into MAC-d PDUs. Thereafter, the disassembly block delivers the corresponding MAC-d PDUs to the MAC-d sub-layer (310). A transport channel multiplexing block (312) in the MAC-d sub-layer (310) refers to the logical channel identifier (C/T field) included in each MAC-d PDU to deliver the MAC-d PDU to the RLC layer via the corresponding logical channel.
FIG. 4 depicts an exemplary transmission and reception procedure in a general HSDPA system. Here, the MAC-d PDU is actually stored in the transmission buffer, but for the sake of explanation, a MAC-hs PDU (=one or more MAC-d PDUs) is depicted. Also, the size of each MAC-hs PDU may be different, but are conceptually depicted to be of equal size Additionally, it is assumed that there are eight (8) HARQ processes.
In more detail, FIG. 4 depicts the procedures of transmission to the receiving side (receiver) when MAC-hs PDU with TSN=13 through TSN=22 are stored in the transmission buffer. First, the MAC-hs PDUs with relatively low TSN values are delivered to an empty HARQ process. Here, the MAC-hs PDU with TSN=13 being delivered to HARQ process #1 , and the MAC-hs PDU with TSN=14 being delivered to HARQ process #8 are shown by way of example. Namely, the TSN is not related to the HARQ process number, and delivery to any empty HARQ process is performed.
When the HARQ process receives an arbitrary data block (MAC-hs PDU), the HARQ process transmits the data block to the receiving side in a specific TTI (transmission time interval) and stores the data block for re-transmission that might be performed later. Only one data block can be transmitted in a certain TTI. Accordingly, only one HARQ process is activated in a single TTI. The HARQ process that transmitted the data block informs the receiving side of its process number through a downlink control signal which is transmitted through a different channel than that of the data block.
The reason for matching the HARQ process of the transmitting side (transmitter) with the HARQ process of the receiving side is because a stop-and-wait ARQ method is used by each HARQ process pair. That is, HARQ process #1 that transmitted MAC-hs PDU with TSN=13 does not transmit another data block until this data block is successfully transmitted. Because a receiving side HARQ process #1 can know that data is transmitted thereto for a corresponding TTI through the downlink control signal, the receiving side HARQ process #1 transmits the NACK to the transmitting side through an uplink control signal when the data block is not successfully received within a defined transmission time interval (TTI). In contrast, when a data block is successfully received, the receiving side HARQ process #1 transmits the ACK to the transmitting side, and at the same time delivers the corresponding data block to the reordering buffer according to the priority (Queue ID).
The multiple reordering buffers can exist per priority level. The HARQ process checks the priority (Queue ID) included in the MAC-hs PDU and delivers this MAC-hs PDU to the reordering buffer according to the priority. The data block delivered to the reordering buffer is then delivered to the upper layer when all of the previous data blocks are successfully received. However, when one or more previous data blocks are not successfully received and delivered to the upper layer, the data block is stored in the reordering buffer. That is, the reordering buffer must support in-sequence delivery of data blocks to the upper layer. A data block that is not delivered to the upper layer is stored in the reordering buffer.
To illustrate the foregoing, FIG. 4 shows that when the MAC-hs PDU with TSN=14 is received but the MAC-hs PDU with TSN=13 is not received, the MAC-hs PDU with TSN=14 is stored in the reordering buffer (420) until the MAC-hs PDU with TSN=13 is received. When the MAC-hs PDU with TSN=13 is received, both data blocks are delivered to the upper layer in the order of TSN=13 and TSN=14. When the data blocks are delivered to the upper layer, they are disassembled in units of MAC-d PDUs and are delivered as described above.
However, during the transmission of data via radio (wireless) channels, certain PDUs may not be properly delivered from the UTRAN to the UE despite numerous re-transmissions. Particular MAC-hs PDUs that that are not delivered for a prolonged period of time causes the problems of degrading transmission efficiency of the HSDPA system. That is, although the HSDPA system was developed for high speed data communications, if one MAC-hs PDU is not properly received for a long time or permanently, this causes many subsequent MAC-hs PDUs remain in the MAC-hs buffer for a prolonged period of time without delivery, and thus the overall data transmission efficiency deteriorates and undermines the reasons for employing a HSDPA system.
In order to prevent the stalling of the MAC-hs PDUs, the HSDPA has adopted a stall avoidance method employing a window technique.
Before explaining the window-based stall avoiding method, the operation environment parameters used for the reordering buffer will first be explained.
The next-expected TSN (referred to as NET hereafter) refers to the immediately subsequent value after the TSN of the last PDU of the sequentially received MAC-hs PDUs. Namely, the NET refers to the TSN of the first MAC-hs PDU to be subsequently received in-sequence. Whenever a PDU having a TSN that equals the NET is received, the NET is updated. The initial NET value is set to zero (0).
The end point of the receive window (RcvWindow_UpperEdge) refers to the largest TSN value in the receive window of the reordering buffer. When a MAC-hs PDU first arrives at the receiving side, the end point (i.e., upper edge) is set as the value corresponding to the largest TSN among those of the received PDUs. The initial value of the upper edge of the receive window is set to 63.
The start point of the receiver window (RcvWindow_LowerEdge) refers to the smallest TSN value in the receiver window of the reordering buffer. The start point (i.e., lower edge) of the receiver window can be calculated by subtracting the receiver window size from the end point of the receiver window and adding 1 thereto (RcvWindow_LowerEdge=RcvWindow_UpperEdge−receiver window size+1).
The receiver window prescribes (regulates) the TSN values of the MAC-hs PDUs that may be received when the window position does not change. The receiver window includes the TSN values from the lower edge to the upper edge of the receiver window.
The size of the receiver window (Receive_Window_Size) refers to the range of the receiver window, and is established by an upper layer of the MAC entity.
In a window based stall avoidance method, the receiving side moves (updates) the receiver window upon receiving a MAC-hs PDU having a TSN that is larger than the RcvWindow_UpperEdge. For those MAC-hs PDUs with a TSN that is smaller than the RcvWindow_LowerEdge of the updated receiver window, the receiving side no longer waits (i.e., ends reception stand-by) for those MAC-hs PDUs that have not yet been received and the MAC-hs PDUs previously received and stored in the reordering buffer are delivered (transferred) to the upper layers, such that stall situations for the MAC-hs PDUs can be prevented.
FIG. 5 depicts a more detailed operation, which can be summarized as follows:
In step 510, a MAC-hs PDU with a transmission sequence number (TSN) having the sequence number (SN) (=a random number) value is received.
In step 520, the SN value is compared with the receiver window range, and if the SN value is within the range, the following step 530 is performed, but if outside the range, the following step 522 is performed.
In step 530, when the SN value falls within the receiver window range, this SN value is compared with the NET, and it is checked as to whether the MAC-hs PDU corresponding to this SN had been previously received. If this SN is smaller than the NET or if the MAC-hs PDU corresponding to this SN had been previously received, the received MAC-hs PDU (in step 510) is discarded (step 540). If this SN equals to or is greater than the NET, and if the MAC-hs PDU corresponding to this SN had not been previously received, the corresponding MAC-hs PDU is stored in the location indicated by the SN value (step 550). Then, the following step 560 is performed.
In previous step 520, if the SN value falls outside the receiver window range, the following steps (steps 522-528) are sequentially performed: The received MAC-hs PDU is stored in the reordering buffer at a location indicated by the SN value that is greater than the RcvWindow_UpperEdge, and the RcvWindow_UpperEdge value is updated to the SN value. Then, among the MAC-hs PDUs stored in the reordering buffer, those MAC-hs PDUs having a TSN value that is smaller than the RcvWindow_LowerEdge are delivered from the reordering buffer to a disassembly block. Also, the NET is updated to be the RcvWindow_LowerEdge, and the following step 560 is performed.
In step 560, all the MAC-hs PDUs starting from the MAC-hs PDU having a TSN=NET and up to the MAC-hs PDU that immediately precedes the first MAC-hs PDU that has not been received, are delivered to the disassembly block. Here, “the first MAC-hs PDU that has not been received” refers to the MAC-hs PDU having the smallest TSN among all the not received MAC-hs PDUs having a TSN that is equal to or greater than the NET.
In step 570, the NET is updated to equal the TSN of the first not received MAC-hs PDU of the previous step 560.
According to the related art stall avoidance method using a window, the receiving side sets the NET value to 0 at the first initialization stage and the receiver window upper edge is set to 63. Thus, assuming that if the receiver window size is 32, based upon the definition of the receiver window, the initial receiver window is determined to have TSN values from 32 to 63. For the first MAC-hs PDU transmitted from the transmitting side, the TSN is set to 0 and for subsequently transmitted MAC-hs PDUs, the TSN values of 1, 2, 3, etc. will be sequentially used. If there are no losses in the radio (wireless) region, the very first MAC-hs PDU arriving at the receiving side would have a PDU with TSN=0.
However, because this MAC-hs PDU is located outside the receiver window defined previously, the receiving side advances the receiver window according to the TSN of the MAC-hs PDU. Thus, according to FIG. 5, the re-established (updated) receiver window is set to have a TSN from 33 to 0. Also, even though the receiving side actually expects to receive a MAC-hs PDU with TSN=1 (i.e., NET=1), there is a problem with the related art because the NET will be set to 33.
Additionally, an even greater problem occurs because even though a received MAC-hs PDU can be immediately delivered to the upper layer, such MAC-hs PDUs are not delivered to the upper disassembly block, but are accumulated in the reordering buffer, thus causing unnecessary delivery delays. Here, in order to deliver the MAC-hs PDU to the upper layer, all of the MAC-hs PDUs having a TSN that is smaller than the receiver window lower edge value (i.e., those MAC-hs PDUs with TSN=33 through 63) must be received, or alternatively, if the receiver window is moved due to a subsequently received MAC-hs-PDU, and the MAC-hs PDU with TSN=0 must be located at a point smaller (less) than the receiver window lower edge. This situation will also occur whenever a MAC-hs PDU having a relatively small TSN (such as TSN=0, 1, 2, 3, etc.) arrives at the receiving side during the initial operation of the receiver window. Accordingly, those MAC-hs PDUs that are sequentially received and that can be delivered to the upper layer unnecessarily remain in the reordering buffer to thus cause undesirable delivery delay situations.
Such unnecessary delivery delay situations do not only occur during the initial stages of HSDPA system operation.
If all the MAC-hs PDUs falling within the receiver window were properly received, the receiver window does not move and the NET is updated to be RcvWindow_UpperEdge+1. When the NET refers to RcvWindow_UpperEdge+1, and a MAC-hs PDU with NET=RcvWindow_UpperEdge+1 arrives at the receiving side, the receiving side newly adjusts the receiver window range (because this MAC-hs PDU falls outside the current receiver window range) such that the NET is updated to RcvWindow_LowerEdge, and this received MAC-hs PDU is stored in the reordering buffer. Even though this PDU was sequentially received and can thus be immediately delivered to the upper layer, the receiver window operation according to the related art does not deliver this MAC-hs PDU to the disassembly block, but stores it in the reordering buffer, causing an unnecessary delivery delay situation.
The above problematic situation is caused by the NET value being outside the receiver window. Also, the previously explained problem during the initial operation at the receiving side is caused by the NET value being outside the receiver window, whereby NET=0 but the receiver window range is set as TSN=32 to 63.
Whenever the NET value falls outside the receiver window, the receiving side stores the received MAC-hs PDU in the reordering buffer even though such may be immediately delivered to the upper layer, resulting in a delay in delivering the MAC-hs PDU.
Such delivery delays cause errors in the upper layer and/or result in severe service quality degradation.